Proposal by Rahul Gandhi for Amber CouchApp framework

Proposed by Rahul Gandhi (profile, biography)


How will I do that project

Firstly I will get familar with the AMBER and COUCHDB and then based on my knowledge of these i will start devoloping framework, add-in, extension or versions of Amber,
that will allow writing of couch apps. 
I'll spend at least 20 hours a week in the project and I'll sync periodically with my mentors to show them the advances and discuss the following steps.
Mainly, during development i will foucs on modifying amber in such a way such that it can create and store programs inside of CouchDB
and those programs can be deployed ,cloned, and mirrored directly from CouchDB.

What methodologies will I use

I am aware of TDD and i will use this methodology in my project .I have basic knowledge of this methodology so it would be interesting to implement this in my project.
At this time i have a general Plan which is mentioned below.
It presents Several milestones. We will try to use incremental development and keep iterations small so as to break complex tasks into easier subtasks.

Suggested timeline and milestones

I have basic knowledge and before the actual project starts, I expect to have mastery at following
-Smalltalk 
-CouchDb
-Amber
Taking this into account , i plan to complete following tasks
The whole gsoc comprises of 16 weeks.Before the actual project starts i would like to know more about community, read documentations,discuss project details with mentor . This time period is of 3 Weeks and i consider this time as Community Bonding Period. So , Now i am left with 13 weeks for the coding period . I will divide them as:

Week 1-3: Create an app in Amber and start modifying the code so as to store progrmas inside of CouchDb and to override WebDav by CouchDb. For this , i am supposed to know the way amber currently stores its source code.
Week 4-6: To include javascript files generated by Amber .
Week 7-10: Necessary changes to Amber UI functionality and implement them. 
Week 10-12: To deploying in Amber ,and storing the application inside CouchDb by just clicking "Save to Couch". This is the last and the final step required . This will implement all the changes in coding we have made so far.

Globally 1 week for bug fixing (even if this time will be distributed among other steps)

Where I see the risks


I think we can experince some technical problem concerning Amber internals .Here i will rely on Smalltalk power and will take help from project mentor and smalltalk google groups and other societies.
May be my estimates are too optimistic. To avoid such kind of problems, me and my project mentor will constantly track our project progress and change our plans accordingly by choosing tasks with higher priority and putting aside less important ones.

How the results will look like


The result would contain some plugin , extension, add-in of Amber that will allow user to develop in amber and when user would click "Save to Couch",The application would be automatically stored inside CouchDB. 
To deploy and use such application, user would need only browser and couchdb, no additional http server, proxy or similar.




Updated: 3.5.2013